package org.xlp.mvc.annotation;

import java.lang.annotation.*;

/**
 * 该注解主要用来标记service层，并把相应的类放入bean容器中管理
 * @see org.xlp.bean.annotation.Component
 * @see Retention
 * @see Target
 * @see Documented
 * @author 徐龙平
 *         <p>
 *         2023-9-13
 *         </p>
 * @version 1.0
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
public @interface Service {
    /**
     * 管理bean的id，该值必须唯一
     */
    String id() default "";

    /**
     * 管理bean的描述
     */
    String description() default "";

    /**
     * bean的实例是否是单例，默认为单例
     */
    boolean singleton() default true;

    /**
     * 创建bean实例，是否通过代理创建，默认是
     */
    boolean proxy() default true;

    /**
     * 是否延迟实例化对象，只对单例有效，默认非延迟加载
     */
    boolean lazy() default false;
}
